using System;
using System.Collections.ObjectModel;

namespace octalforty.Componento.Core.Framework
{
    public interface IPackageResourceInstaller
    {
        /// <summary>
        /// Returns a collection of all URI schemas supported by this <see cref="IPackageResourceProvider"/>.
        /// </summary>
        /// <remarks>
        /// <see cref="SupportedSchemas"/> must return lower-cased schema names.
        /// </remarks>
        ReadOnlyCollection<string> SupportedSchemas
        { get; }
        
        /// <summary>
        /// Installs
        /// </summary>
        /// <param name="resourceUri"></param>
        /// <param name="targetDirectory"></param>
        void InstallResource(Uri resourceUri, string targetDirectory);
    }
}